home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Gold Collection / Software Vault - The Gold Collection (American Databankers) (1993).ISO / cdr25 / dirstack.zip / DIRSTACK.TXT next >
Text File  |  1993-03-03  |  6KB  |  140 lines

  1.  
  2.     DirStack 2.01
  3.     (incorporating PUSHD, POPD, INITD)
  4.     Batch file directory stack commands
  5.     (c) 1993 ZingoTech Labs / Jim Nelson
  6.     ------------------------------------
  7.  
  8.     Licensing and availability
  9.     --------------------------
  10.     DirStack is FREEWARE.  Please distribute everywhere.  There is no
  11.     charge incurred or expected by the author for its use or distribution.
  12.     The only obligation is that this text file be included as part of any
  13.     distribution.
  14.  
  15.     Operation
  16.     ---------
  17.     These 3 programs work together as an effective batch-file based
  18.     directory stack.  I originally saw these commands on a SCO UNIX
  19.     machine, and found them quite useful in script files for that
  20.     system.  With a little ingenuity, I hacked out similar commands for
  21.     DOS.
  22.  
  23.     Here's the idea: let's say you have a batch file that changes drives
  24.     or directories internally.  This is sometimes more than a nuisance;
  25.     great ideas for complex batch files are quickly killed when one
  26.     realizes there's no effective way to get back to the directory you
  27.     started in.
  28.  
  29.     That's what these are for.  PUSHD will push on a stack the current
  30.     drive/directory.  POPD pops the most recently pushed directory off
  31.     the stack, and changes the drive/directory accordingly.
  32.  
  33.     Now, in some implementations of UNIX, there are script commands that
  34.     allow you to build an array of characters -- perfect for this type of
  35.     application.  As a matter of fact, these commands were not even scripts
  36.     themselves, but simply aliases (commands re-interpreted by the shell
  37.     before execution).  The overhead was low to none in this kind of
  38.     implementation.
  39.  
  40.     Not so, with DOS-based machines.  I've seen directory stacks for DOS
  41.     before, but they always relied on a TSR.  None of these files are
  42.     TSR-based.  Instead, the stack is located in a temporary file
  43.     (DIRSTACK.DAT).  Each program manipulates the file in its own unique
  44.     manner.
  45.  
  46.     INITD
  47.     -----
  48.     INITD initializes (clears) the stack for the other modules.  Although
  49.     it's probably not needed in normal use, it is needed if the PC crashes;
  50.     after a reboot, the stack is still (faithfully) there.  This is a
  51.     good AUTOEXEC.BAT or Login Script command.
  52.  
  53.     INITD /S will not clear the stack, but print to standard output the
  54.     path it (and the other modules) will use to look for DIRSTACK.DAT.
  55.  
  56.     PUSHD
  57.     -----
  58.     This will push the current drive and directory onto the stack.  That's
  59.     it.
  60.  
  61.     POPD
  62.     ----
  63.     This will pop from the stack a drive and directory, and then attempt
  64.     to make that the current path.
  65.  
  66.     Error messages
  67.     --------------
  68.     Unobtrusiveness was a specification from the beginning.  Error messages
  69.     are brief (and to standard output).  The only error messages that will
  70.     appear are if DIRSTACK is unwritable (read-only attribute?), the
  71.     directory is unwritable, or if the drive/directory popped is unavailable.
  72.  
  73.     Finding DIRSTACK.DAT
  74.     --------------------
  75.     Since this is not a TSR-based package, each utility must hunt for the
  76.     DIRSTACK.DAT individually, each time it is executed.  They each follow
  77.     the same set of rules:
  78.         1. Use directory specified by the environment variable STACK.
  79.         2. Ditto for TEMP.
  80.         3. Ditto for TMP.
  81.         4. Find first local fixed drive, and locate file in its root.
  82.         5. Use the directory the module is located in.
  83.     I have chosen this order to hopefully avoid lost stacks and multiple users
  84.     overwriting the same stack on a network.  Best bet?  Use the STACK
  85.     variable if you plan on using these modules a lot in your batch files.
  86.  
  87.     Of course, for best results, make sure they are all located in the PATH.
  88.  
  89.     Final thoughts
  90.     --------------
  91.     I hope you enjoy using this suite of modules.  I developed them
  92.     specifically for my needs, but tried to be "global-thinking" enough for
  93.     anyone in any PC environment to find them useful.  Most of the
  94.     considerations I made were really for a PC network system administrator.
  95.  
  96.     If you find yourself using these quite a bit, please write to me (address
  97.     below) and tell me what you think.  To be really honest, I'm not sure how
  98.     much practical value this package has, and would like to hear if anyone
  99.     finds this sort of thing useful.
  100.  
  101.     About ZingoTech Labs
  102.     --------------------
  103.     Entirely fictional.  Decartes would call it a construct of
  104.     Jim Nelson's mind.  Still, the idea is simple: there just aren't
  105.     enough quality widgets in the world ("quality" being the
  106.     emphasized word).  Too often, you find you need some little
  107.     program that would make life that much better, only you can't
  108.     fine one anywhere.  Or, you get your hands on one, and it's too
  109.     limited, ugly, tough to use, or, gosh darnit, the guy wants
  110.     twenty-five bucks for you to legally use it after 30 days.
  111.  
  112.     That's why (most) of our products are freeware.  There's no
  113.     reason to pay more than $5 and the price of a first-class stamp
  114.     for something like, well, DirStack.  But it's nice to have.  So
  115.     keep it!
  116.  
  117.     However ...
  118.     -----------
  119.     Standard disclaimer.  Jim Nelson / ZingoTech Labs can't be
  120.     held responsible for any problems, liabilities, destruction,
  121.     permissiveness, loss of house and family, or any other bad kind
  122.     of thing from it's use.  Bottom line: if you use it, you're
  123.     responsible for the consequences.
  124.  
  125.     On a lighter note
  126.     -----------------
  127.     I love criticism and suggestions.  Whatever you think,
  128.     *please* write and tell me.  Small donations (cash or otherwise)
  129.     will be heartily accepted.  Plus, I might have a newer version
  130.     available as well.  Whatever you have to say, contact me at:
  131.  
  132.          Jim Nelson / ZingoTech Labs
  133.          1190 Buchon St.
  134.          San Luis Obispo, CA  93401
  135.          Internet: jnelson@tuba.calpoly.edu
  136.  
  137.     Thanks!
  138.  
  139.  
  140.